Skip to content

Bump platform dependencies and dev tools - #164

Merged
AlexanderShenshin merged 5 commits into
mainfrom
chore/bump-dev-tools-and-platform
Jun 4, 2026
Merged

Bump platform dependencies and dev tools#164
AlexanderShenshin merged 5 commits into
mainfrom
chore/bump-dev-tools-and-platform

Conversation

@AlexanderShenshin

@AlexanderShenshin AlexanderShenshin commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Description:

Bumped and aligned platform dependencies and dev tools across the repo:

  • Yarn: 4.16.0
  • Node: `22
  • TypeScript: 5.9.x
  • ESLint: 10.x

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

Summary by CodeRabbit

  • Chores

    • Updated Node.js runtime to v22 across CI, builds and container images.
    • Upgraded Yarn to 4.16.0, harmonized packageManager settings and enabled Corepack/Yarn script usage.
    • Migrated and consolidated ESLint to flat-configs; removed legacy configs and refreshed linting toolchain.
    • Adjusted package engine constraints and bumped TypeScript/dev tooling versions.
    • Updated ignore rules to account for Yarn Berry artifacts.
  • Documentation

    • Updated quick-start/setup instructions to recommend Node.js 22 LTS and Corepack usage.

Signed-off-by: Alexander Shenshin <alexander.shenshin@dsr-corporation.com>
Signed-off-by: Alexander Shenshin <alexander.shenshin@dsr-corporation.com>
Signed-off-by: Alexander Shenshin <alexander.shenshin@dsr-corporation.com>
Signed-off-by: Alexander Shenshin <alexander.shenshin@dsr-corporation.com>
@AlexanderShenshin AlexanderShenshin self-assigned this Jun 3, 2026
@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d7f09baa-e6ba-447c-877d-d4205275dda1

📥 Commits

Reviewing files that changed from the base of the PR and between 62c618b and 9187af8.

📒 Files selected for processing (9)
  • demo/a2a-oid4vp/.yarnrc.yml
  • heka-auth-service/.yarnrc.yml
  • heka-auth-service/package.json
  • heka-identity-service-web-ui/.yarnrc.yml
  • heka-identity-service-web-ui/package.json
  • heka-identity-service/.yarnrc.yml
  • heka-identity-service/package.json
  • heka-wallet/.yarnrc.yml
  • heka-wallet/package.json
💤 Files with no reviewable changes (4)
  • heka-identity-service-web-ui/.yarnrc.yml
  • heka-auth-service/.yarnrc.yml
  • demo/a2a-oid4vp/.yarnrc.yml
  • heka-identity-service/.yarnrc.yml
✅ Files skipped from review due to trivial changes (1)
  • heka-wallet/.yarnrc.yml
🚧 Files skipped from review as they are similar to previous changes (3)
  • heka-identity-service/package.json
  • heka-wallet/package.json
  • heka-identity-service-web-ui/package.json

📝 Walkthrough

Walkthrough

Coordinated upgrade of Node.js (to 22) and Yarn (to 4.16.0) across CI, Docker, project .yarnrc.yml and package.json files; migration from legacy .eslintrc.js to flat eslint.config.mjs with import-x; TypeScript/tooling dependency bumps; small, behavior-preserving code refactors.

Changes

Tooling Version and Config Migration

Layer / File(s) Summary
Node.js and Yarn runtime updates
.github/workflows/*, .gitignore, */Dockerfile, */.yarnrc.yml, */README.md, */package.json
CI workflows and Docker images moved to Node.js 22; Yarn runtime pinned to yarn@4.16.0 in .yarnrc.yml and package.json packageManager; .gitignore entries updated for Yarn Berry artifacts; README prerequisites updated.
ESLint migration to flat config with import-x plugin
*/eslint.config.mjs, */.eslintignore, heka-wallet/app/index.js, heka-wallet/packages/shared/src/utils/ble.ts
Projects migrated from legacy .eslintrc.js to flat eslint.config.mjs; old .eslintignore entries removed; ESLint plugin namespace switched from import to import-x; source-file ESLint directives updated accordingly.
TypeScript and ESLint tooling dependency updates
*/package.json, heka-identity-service-web-ui/tsconfig.json, heka-wallet/tsconfig.json
DevDependencies updated (TypeScript ~5.9.3, typescript-eslint ^8.60.1, ESLint ^10.x and plugins), engines.node ranges added (`^20.19.2
Code refactoring and minor updates
heka-auth-service/src/core/config/configs/db.config.ts, heka-identity-service/src/common/entities/issuance-template-field.entity.ts, heka-identity-service/test/revocation.e2e.test.ts, heka-wallet/packages/shared/src/utils/ble.ts
DbConfig constructor assignments made explicit; IssuanceTemplateField.template decorated with @Index(); test variables changed to definite-assignment assertions; ESLint suppression comments updated to import-x/*.

🎯 3 (Moderate) | ⏱️ ~25 minutes

🐰 Hop along to Node 22, they say,
With Yarn threads held tight in their Yarn-ry way,
ESLint's flat config now takes the stage,
Typescript tooling turns the new page!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Bump platform dependencies and dev tools' directly summarizes the main change across all files: systematic upgrades to Node.js (18/20→22), Yarn (4.9.4→4.16.0), TypeScript, ESLint, and related tooling throughout the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-dev-tools-and-platform

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@lfdt-bot

lfdt-bot commented Jun 3, 2026

Copy link
Copy Markdown

Snyk checks have failed. 1 issues have been found so far.

Status Scan Engine Critical High Medium Low Total (1)
Open Source Security 0 1 0 0 1 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
heka-auth-service/Dockerfile (1)

16-32: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Run the runtime container as a non-root user.

The final stage does not set USER, so the app runs as root. This is a container hardening gap and increases blast radius on compromise.

Suggested Dockerfile adjustment
 FROM node:22-bookworm-slim

 RUN apt-get update && apt-get install curl -y

 WORKDIR /opt/heka-auth-service
@@
 COPY --from=builder /opt/heka-auth-service/.yarn ./.yarn
 COPY --from=builder /opt/heka-auth-service/.yarnrc.yml ./
+
+RUN chown -R node:node /opt/heka-auth-service
+USER node

 CMD ["sh", "-c", "yarn migration:up && yarn start"]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@heka-auth-service/Dockerfile` around lines 16 - 32, The final Dockerfile
stage currently runs as root (no USER set) which is insecure; create or use a
non-root user (e.g., add a user like "app" or use the standard node user), chown
the application files/directories copied into WORKDIR (migrations, dist,
node_modules, package*.json, .yarn, .yarnrc.yml) to that user, set USER to that
non-root user before the CMD, and ensure any startup commands (yarn migration:up
&& yarn start) run with that user's permissions; reference the Dockerfile CMD
and the copied paths (migrations, dist, node_modules, package*.json, .yarn,
.yarnrc.yml) and perform chown after COPY and before switching USER.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@demo/a2a-oid4vp/.yarnrc.yml`:
- Around line 1-2: The Yarn config currently disables supply-chain guardrails by
setting approvedGitRepositories to "**" and npmMinimalAgeGate to 0; update the
config to use an explicit allowlist for approvedGitRepositories (replace the
"**" wildcard with a list of trusted repo URLs or org patterns) and set
npmMinimalAgeGate to a non-zero value (e.g., a few days) to re-enable
package-age gating; ensure both keys (approvedGitRepositories and
npmMinimalAgeGate) are present and documented so reviewers can verify the
allowed repos and chosen age threshold.

In `@heka-auth-service/.yarnrc.yml`:
- Around line 1-2: The approvedGitRepositories setting currently uses a wildcard
("**") which disables git-source allowlisting; update the .yarnrc.yml by
replacing approvedGitRepositories: - "**" with a limited list of explicit
trusted org/repo patterns (for example entries matching your orgs or specific
repos) or remove the approvedGitRepositories key entirely if you don't need
allowlisting; ensure you modify the approvedGitRepositories entry so it only
contains safe, explicit patterns rather than the global wildcard.
- Line 8: The npmMinimalAgeGate is set to 0 which disables the quarantine window
for newly published packages; update the npmMinimalAgeGate setting in the
configuration to a positive integer (e.g., 3 or 7 days) to enforce an age gate,
validate that the change is applied by running your package manager lint/check,
and add a brief note in the repository’s contributing or security docs
describing the allowed exception process for any future overrides of
npmMinimalAgeGate.

In `@heka-auth-service/package.json`:
- Around line 90-91: The pinned dependency typescript-eslint at "8.60.1" is
tripping the StepSecurity cooldown; update the version in package.json to an
earlier patch that's already passed the cooldown (for example pick an 8.5x or an
early 8.60.x release published before 2026-06-01) so CI passes immediately, then
run npm/yarn install to update lockfile; keep the package name
"typescript-eslint" unchanged and only adjust the version string.
- Around line 26-28: The engines.node range in package.json currently allows
Node 21.x which ESLint 10 rejects; update the "engines": { "node": ... } field
(and the same field duplicated in other package.json files) to the tightened,
ESLint-supported range (e.g. ^20.19.0 || ^22.13.0 || >=24) so the manifest
cannot advertise an unrunnable Node version.

In `@heka-identity-service-web-ui/.yarnrc.yml`:
- Line 8: The npmMinimalAgeGate value is set to 0 which disables the publish-age
guard; update the npmMinimalAgeGate setting in .yarnrc.yml to a positive integer
(e.g., 30) to enforce a minimum package publish age for baseline supply-chain
protection and document any intentional override in repo policy; change the
value referenced by the npmMinimalAgeGate key and commit with a brief
justification.
- Around line 1-2: The approvedGitRepositories entry currently uses a wildcard
("**") which allows any git source; replace that value with a minimal allowlist
of trusted hosts/orgs/repos by updating the approvedGitRepositories YAML list
(replace the "**" list item) to explicit patterns or specific repos (e.g.
"github.com:your-org/*", "gitlab.com:trusted-team/*", or
"github.com:your-org/specific-repo") appropriate for your project, ensure the
entries follow Yarn's accepted host/repo pattern syntax and keep the list as
small and specific as possible.

In `@heka-identity-service/.yarnrc.yml`:
- Around line 1-4: The .yarnrc.yml currently sets approvedGitRepositories:
["**"] with enableScripts: true which allows any git-hosted dependency to run
lifecycle scripts; tighten this by replacing the wildcard with explicit allowed
repo patterns (or remove approvedGitRepositories entirely if no git deps are
used) and/or set a safer allowlist such as specific org/repo globs, ensuring
postinstall (patch-package) in package.json still runs as expected; update the
approvedGitRepositories entry and keep enableScripts only if needed so that
arbitrary git+ / github: dependencies cannot execute install scripts.

In `@heka-identity-service/test/revocation.e2e.test.ts`:
- Around line 22-23: The variables revocationRegistryDefinitionId and
revocationIndex are declared with definite-assignment assertions which hide that
they are never actually set; update their declarations
(revocationRegistryDefinitionId, revocationIndex) so they are either initialized
with a real value or typed as optional (e.g., string | undefined / number |
undefined) and ensure they are assigned in the test setup (beforeAll/beforeEach)
from the helper that creates the revocation registry; additionally add explicit
runtime checks or expect assertions before use so tests fail with a clear
message if setup didn't assign them.

---

Outside diff comments:
In `@heka-auth-service/Dockerfile`:
- Around line 16-32: The final Dockerfile stage currently runs as root (no USER
set) which is insecure; create or use a non-root user (e.g., add a user like
"app" or use the standard node user), chown the application files/directories
copied into WORKDIR (migrations, dist, node_modules, package*.json, .yarn,
.yarnrc.yml) to that user, set USER to that non-root user before the CMD, and
ensure any startup commands (yarn migration:up && yarn start) run with that
user's permissions; reference the Dockerfile CMD and the copied paths
(migrations, dist, node_modules, package*.json, .yarn, .yarnrc.yml) and perform
chown after COPY and before switching USER.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0976a4d2-7411-44a2-81e4-1d147fc76fd7

📥 Commits

Reviewing files that changed from the base of the PR and between 18450cc and a37db25.

⛔ Files ignored due to path filters (14)
  • demo/a2a-oid4vp/.yarn/releases/yarn-4.16.0.cjs is excluded by !**/.yarn/**
  • demo/a2a-oid4vp/.yarn/releases/yarn-4.9.4.cjs is excluded by !**/.yarn/**
  • demo/a2a-oid4vp/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
  • heka-auth-service/.yarn/releases/yarn-4.16.0.cjs is excluded by !**/.yarn/**
  • heka-auth-service/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
  • heka-identity-service-web-ui/.yarn/releases/yarn-4.16.0.cjs is excluded by !**/.yarn/**
  • heka-identity-service-web-ui/.yarn/releases/yarn-4.9.4.cjs is excluded by !**/.yarn/**
  • heka-identity-service-web-ui/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
  • heka-identity-service/.yarn/releases/yarn-4.16.0.cjs is excluded by !**/.yarn/**
  • heka-identity-service/.yarn/releases/yarn-4.9.4.cjs is excluded by !**/.yarn/**
  • heka-identity-service/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
  • heka-wallet/.yarn/releases/yarn-4.16.0.cjs is excluded by !**/.yarn/**
  • heka-wallet/.yarn/releases/yarn-4.9.4.cjs is excluded by !**/.yarn/**
  • heka-wallet/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (42)
  • .github/workflows/heka-auth-service-verify.yml
  • .github/workflows/heka-identity-service-verify.yml
  • .github/workflows/heka-identity-service-web-ui-verify.yml
  • .github/workflows/heka-wallet-build-android.yml
  • .github/workflows/heka-wallet-verify.yml
  • .gitignore
  • demo/a2a-oid4vp/.yarnrc.yml
  • demo/a2a-oid4vp/README.md
  • demo/a2a-oid4vp/package.json
  • heka-auth-service/.eslintignore
  • heka-auth-service/.eslintrc.js
  • heka-auth-service/.gitignore
  • heka-auth-service/.yarnrc.yml
  • heka-auth-service/Dockerfile
  • heka-auth-service/README.md
  • heka-auth-service/eslint.config.mjs
  • heka-auth-service/package.json
  • heka-auth-service/src/core/config/configs/db.config.ts
  • heka-identity-service-web-ui/.gitignore
  • heka-identity-service-web-ui/.yarnrc.yml
  • heka-identity-service-web-ui/README.md
  • heka-identity-service-web-ui/eslint.config.mjs
  • heka-identity-service-web-ui/package.json
  • heka-identity-service-web-ui/tsconfig.json
  • heka-identity-service/.eslintignore
  • heka-identity-service/.eslintrc.js
  • heka-identity-service/.yarnrc.yml
  • heka-identity-service/docs/setup.md
  • heka-identity-service/eslint.config.mjs
  • heka-identity-service/package.json
  • heka-identity-service/src/common/entities/issuance-template-field.entity.ts
  • heka-identity-service/test/revocation.e2e.test.ts
  • heka-wallet/.eslintignore
  • heka-wallet/.eslintrc.js
  • heka-wallet/.yarnrc.yml
  • heka-wallet/README.md
  • heka-wallet/app/.eslintignore
  • heka-wallet/app/index.js
  • heka-wallet/eslint.config.mjs
  • heka-wallet/package.json
  • heka-wallet/packages/shared/src/utils/ble.ts
  • heka-wallet/tsconfig.json
💤 Files with no reviewable changes (7)
  • heka-wallet/app/.eslintignore
  • heka-wallet/.eslintignore
  • heka-auth-service/.eslintrc.js
  • heka-auth-service/.eslintignore
  • heka-wallet/.eslintrc.js
  • heka-identity-service/.eslintignore
  • heka-identity-service/.eslintrc.js

Comment thread demo/a2a-oid4vp/.yarnrc.yml Outdated
Comment thread heka-auth-service/.yarnrc.yml Outdated
Comment thread heka-auth-service/.yarnrc.yml
Comment thread heka-auth-service/package.json
Comment thread heka-auth-service/package.json
Comment thread heka-identity-service-web-ui/.yarnrc.yml Outdated
Comment thread heka-identity-service-web-ui/.yarnrc.yml
Comment thread heka-identity-service/.yarnrc.yml Outdated
Comment thread heka-identity-service/test/revocation.e2e.test.ts
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

Coverage Report for ./heka-identity-service

Status Category Percentage Covered / Total
🔵 Lines 92.52% 3058 / 3305
🔵 Statements 92.52% 3058 / 3305
🔵 Functions 97.28% 179 / 184
🔵 Branches 82.66% 720 / 871
File CoverageNo changed files found.
Generated in workflow #187 for commit 9187af8 by the Vitest Coverage Report Action

@AlexanderShenshin

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@heka-wallet/package.json`:
- Around line 31-34: The engines.yarn constraint is out of sync with the
packageManager pin; update the "engines".yarn value to require at least the
Corepack-pinned version by changing the engines.yarn entry from "^4.9.4" to
"^4.16.0" so it matches the packageManager: "yarn@4.16.0" declaration and
prevents version drift.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 74b06578-f4b3-413e-a648-86d9478c7eff

📥 Commits

Reviewing files that changed from the base of the PR and between a37db25 and 62c618b.

📒 Files selected for processing (9)
  • demo/a2a-oid4vp/.yarnrc.yml
  • heka-auth-service/.yarnrc.yml
  • heka-auth-service/package.json
  • heka-identity-service-web-ui/.yarnrc.yml
  • heka-identity-service-web-ui/package.json
  • heka-identity-service/.yarnrc.yml
  • heka-identity-service/package.json
  • heka-wallet/.yarnrc.yml
  • heka-wallet/package.json
💤 Files with no reviewable changes (4)
  • demo/a2a-oid4vp/.yarnrc.yml
  • heka-auth-service/.yarnrc.yml
  • heka-identity-service-web-ui/.yarnrc.yml
  • heka-identity-service/.yarnrc.yml
🚧 Files skipped from review as they are similar to previous changes (4)
  • heka-wallet/.yarnrc.yml
  • heka-identity-service/package.json
  • heka-identity-service-web-ui/package.json
  • heka-auth-service/package.json

Comment thread heka-wallet/package.json
Signed-off-by: Alexander Shenshin <alexander.shenshin@dsr-corporation.com>
@AlexanderShenshin
AlexanderShenshin force-pushed the chore/bump-dev-tools-and-platform branch from 62c618b to 9187af8 Compare June 3, 2026 19:26
@AlexanderShenshin
AlexanderShenshin merged commit f7a4057 into main Jun 4, 2026
12 of 13 checks passed
@AlexanderShenshin
AlexanderShenshin deleted the chore/bump-dev-tools-and-platform branch June 4, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants